package cn.tedu.weibo.controller;

import cn.tedu.weibo.mapper.UserMapper;
import cn.tedu.weibo.pojo.dto.UserLoginDTO;
import cn.tedu.weibo.pojo.dto.UserRegDTO;
import cn.tedu.weibo.pojo.entity.User;
import cn.tedu.weibo.pojo.vo.UserVO;
import cn.tedu.weibo.response.JsonResult;
import cn.tedu.weibo.response.StatusCode;
import cn.tedu.weibo.service.UserService;
import cn.tedu.weibo.service.impl.UserServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;

@Api(tags = "注册模块")
@Slf4j
@RestController
@RequestMapping("/v1/users")
public class UserController {

    //  自动注入要只用Service 层的接口名
    @Autowired
    private UserService userService;

    /*
     *   前端应用qs.stringify 可以将对象转化为查询字符串
     *   所以就不需要用 @RequestBody注解了
     * */
    @ApiOperation("用户注册")
    @PostMapping("reg")
    // public JsonResult reg(@RequestBody UserRegDTO userRegDTO){
    public JsonResult reg(UserRegDTO userRegDTO) {
        log.debug("参数 " + userRegDTO);
        System.out.println("参数 " + userRegDTO);
        // 控制层不涉及业务,只需要调用业务层干货即可
        userService.reg(userRegDTO);
        return JsonResult.ok();
    }

    @ApiOperation("用户登录")
    @PostMapping("login")
    public JsonResult login(UserLoginDTO userLoginDTO) {
        System.out.println("userLoginDTO = " + userLoginDTO);
        return  JsonResult.ok(userService.login(userLoginDTO));
    }
}
